import { IUser } from "../model/User";

export interface IServiceCloudImUserCreateParams extends IUser {
  /**
   * 云通信ID，最大长度32字符，必须保证一个
   * APP内唯一（只允许字母、数字、半角下划线_、@、半角点以及半角-组成，不区分大小写，会统一小写处理，请注意以此接口返回结果中的accid为准）。
   */
  account: string;
  /** 云通信ID昵称，最大长度64字符。必填 */
  nick: string;
  /** 云通信ID头像URL，开发者可选填，最大长度1024 */
  avatar?: string;
  /** 云通信ID可以指定登录token值，最大长度128字符，并更新，如果未指定，会自动生成token，并在创建成功后返回 */
  token?: string;
}

export interface IServiceCloudImUserCreateResult {
  token: string;
  account: string;
}

/* 更新个人名片参数 */
export interface IServiceCloudImUserUpdateParams extends IUser {
  /**
   * 云通信ID，最大长度32字符，必须保证一个
   * APP内唯一（只允许字母、数字、半角下划线_、@、半角点以及半角-组成，不区分大小写，会统一小写处理，请注意以此接口返回结果中的accid为准）。
   */
  account: string;
  /** 云通信ID昵称，最大长度64字符。必填 */
  nick?: string;
  /** 云通信ID头像URL，开发者可选填，最大长度1024 */
  avatar?: string;
  /** 云通信ID可以指定登录token值，最大长度128字符，并更新，如果未指定，会自动生成token，并在创建成功后返回 */
  token?: string;
}

export interface IServiceCloudImUserUpdateTokenParams extends IUser {
  /**
   * 云通信ID
   */
  account: string;
  /** 云通信ID可以指定登录token值，最大长度128字符，并更新，如果未指定，会自动生成token，并在创建成功后返回 */
  token?: string;
}

export interface IServiceCloudImUserUpdateTokenResult {
  token: string;
  account: string;
}

/**
 * 拉取IM用户信息参数
 */
export interface IServiceCloudImUserFetchParams {
  accounts: string[];
  currentPage?: number;
  pageSize?: number;
}

/**
 * 拉取IM用户信息结果
 */
export interface IServiceCloudImUserFetchResult {
  users: IUser[];
}
